#pragma once

#include "iostream"
#include "vector"
#include "algorithm"

using namespace std;

/*HJJ QQ479287006
 *编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀，返回空字符串 ""。

 

示例 1：

输入：strs = ["flower","flow","flight"]
输出："fl"
示例 2：

输入：strs = ["dog","racecar","car"]
输出：""
解释：输入不存在公共前缀。

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * */
string longestCommonPrefix(vector<string> &strs) {

    if (strs.size() <= 1)
        return strs[0];

    string ret = "";
    int index = 0;


    while (true) {
        int i = 1;
        for (i = 1; i < strs.size(); ++i) {
            if (strs[i - 1].size() <= index || strs[i].size() <= index)
                return ret;

            if (strs[i - 1][index] != strs[i][index])
                return ret;
        }

        ret = ret + strs[i - 1][index++];

    }

    return ret;
}